6.3 分层索引的4种方法
关于分层索引数据的呈现方式,还可以使用Multindex类下面的函数来设置,分别按数组,元组,笛卡尔积,DateFrame这4种方式来设置分层索引,
1、按数组
import pandas as pd
l=[[ "A组","A组","B组","B组" ],[ "1","2","3","4" ]]
i=pd.MultiIndex.from_arrays(l,names=[ "组名","工号" ])
df=pd.Series([ "张三","李四","王麻子","小曾" ], index =i)
print (df)
返回:
A组 | 1 | 张三 |
2 | 李四 | |
B组 | 3 | 王麻子 |
4 | 小曾 |
dtype: object
2、按元组
import pandas as pd
l=[( "A组","1" ),( "A组","2" ),( "B组","3" ),( "B组","4" )]
i=pd.MultiIndex.from_tuples(l,names=[ "组名","工号" ])
df=pd.Series([ "张三","李四","王麻子","小曾" ], index =i)
print (df)
返回:和上面结果是一样的
3、按笛卡尔积
import pandas as pd
l=[( "A组","B组" ),( "1","2" )]
i=pd.MultiIndex.from_product(l,names=[ "组名","工号" ])
df=pd.Series([ "张三","李四","王麻子","小曾" ], index =i)
print (df)
返回:
组名 | 工号 | |
---|---|---|
A组 | 1 | 张三 |
2 | 李四 | |
B组 | 1 | 王麻子 |
2 | 小曾 |
dtype: object
4、按DateFrame
import pandas as pd
df=pd.DataFrame({
"组别" :[ "A组","A组","B组","B组" ],
"工号" : [ "1", "2", "3", "4" ]
})
i=pd.MultiIndex.from_frame(df)
s=pd.Series([ "张三","李四","王麻子","小曾" ], index =i)
print (s)
返回同1、2结果是一样的